<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <input type="text">

    <script>

        const inp = document.querySelector('input');

        inp.addEventListener('input', debounce(search));

        // 外部逻辑
        function search () {
            console.log(inp.value);
        }

        // 防抖 5.1 面试题
        // 输入完成查询一次
        // a: 0s
        // b: 0.5s
        function debounce (fn) {
            let timer;
            return function () {
                if (timer) {
                    clearTimeout(timer);
                }
                timer = setTimeout(() => {
                    // 执行外部逻辑
                    fn();
                }, 1000);
            };
        }

        // 装饰者模式: 输入x 返回装饰过的x


    </script>
</body>
</html>